<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
    function foo() {
        return new Promise(((resolve, reject) => {
            // 全都被catch捕获
            // reject(1)  // catch 1
            // throw 2     // catch 2
            // throw new Error('3') // catch Error 3
            // throw Error('4')   // catch Error 4
            // reject(Error('5'))   // catch Error 5
        }))

    }

    foo().then(value => {
        console.log('then', value)
    }).catch(error => {
        console.log('catch', error)
    })


    async function bar() {
        Promise.reject(6)
    }

    bar().then(console.log)
        .catch(value => {
            console.log('error', value)
        })  // Uncaught (in promise) 6

</script>
</body>
</html>